Install-Windows
Install :*Grab a win32 binary package: :**to play on old (1.14.x) servers, get ftp://ftp.freeciv.org/freeciv/packages/windows/freeciv-1.14.2-win32.zip :**to play on new (2.0.x) servers, get ftp://ftp.freeciv.org/pub/freeciv/packages/windows/Freeciv-2.0.6-win32-gtk2-setup.exe (XP, 2000, and NT only), or ftp://ftp.freeciv.org/pub/freeciv/packages/windows/Freeciv-2.0.6-win32-setup.exe (95 and above). :*Install this package into a suitable directory, such as C:\Program Files\Freeciv. :*In case you want to change the language in 2.0.x, create a simple batch file (e.g. freeciv.bat, in the same directory, where you have installed the package) and then run this file instead of civclient.exe (do not forget to change all shorcuts' target to this new file). The batch consists of 2 lines: :**set LANG=EN :**civclient.exe Compile From Source WARNING: Compiling from source on Windows can be quite problematic. *Step 0: You may need help at some point. You can use IRC to join #freeciv-dev on irc.freenode.org to talk to someone if you run into problems. *Step 1: You need to compile the source. This requires an ANSI C compiler and fortunately you have a choice of either MinGW or Cygwin. Both are quite large so a fast connection/patience is required. Mingw is recommended here since that's what the developers use. *Step 3: You need the source so grab yourself a copy. To compile the stable version, grap a copy of the source tarball. To compile the development version, you should use CVS - on cygwin it's easier to use TortoiseCVS (but remember when you check the source out to set it to use Unix line endings). msys comes with CVS so you can just use that. See How to Contribute for using CVS to get the source from CVS. *Step 4: One last step before we can compile. Navigate to the directory in your shell to where you checked the source out to and type 'autogen.sh --enable-client=win32' (without the quotes) and wait a while you should get something like this: $ autogen.sh --enable-client=win32 + checking for autoconf >= 2.52 ... found 2.56, ok. + checking for automake >= 1.6 ... found 1.7.1, ok. + checking for xgettext >= 0.10.36 ... found 0.11.5, ok. + checking for msgfmt >= 0.10.36 ... found 0.11.5, ok. + creating acinclude.m4 + running aclocal ... + running autoheader ... + running autoconf ... + running automake ... ai/Makefile.am: installing `bootstrap/depcomp' + removing config.cache ... + running configure ... using: --enable-client=win32 checking build system type... i686-pc-mingw32 checking host system type... i686-pc-mingw32 checking target system type... i686-pc-mingw32 checking for a BSD-compatible install... /bin/install -c ... From here on after you get a whole load of checks for various header files and functions, a (small) sample of which is below: ... checking for an ANSI C-conforming const... yes checking for inline... inline checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes ... And finally after a minute or so you will hopefully see the following sample: ... modifying po/Makefile add-comments/escape config.status: executing fc_default-5 commands config.status: executing default commands Now type 'make' to compile freeciv. grahamr@MOURNBLADE /d/Develop/projects/Win32/freeciv $ *Step 5:Which means you can now type 'make' and sit back while the code compiles... If things go wrong Not everything goes quite as well as we'd like and freeciv compilation is one of them. Here will be some help on trouble shooting problems. Getting it to work You might have noticed that the civclient program will not run from the directory you compiled in because it is not finding the data directory. I managed to run ./client/civclient, but not ./civ which is supposed to work. Usually GNU/unix programs can be installed by typing make install Which will install them such that they can be started from a MinGW shell, probably in $MINGW/ local/bin directory. For me, this didn't work either because the shared libraries/DLLs where not found. You can either fix this by placing the DLLs in the appropriate windows/system folder by hand, or by packaging them with freeciv in some folder where you installed to. In this case, a working freeciv install that can be started by typing ./civclient The freeciv directory in the MinGW shell looks like this(this isn't perfect, but I hope it helps): freeciv-2.0.1/: total 6800 -rw-r--r-- 1 mcfred unknown 2217 May 13 00:39 CIVCLIENT.RPT -rwxr-xr-x 1 mcfred unknown 5769464 May 11 22:11 civclient.exe -rwxr-xr-x 1 mcfred unknown 1203712 May 11 23:02 civmanual.exe -rwxr-xr-x 1 mcfred unknown 5751863 May 11 22:11 civserver.exe drwxr-xr-x 14 mcfred unknown 0 May 11 23:05 data -rwxr-xr-x 1 mcfred unknown 916849 Jan 31 2003 libiconv-2.dll -rwxr-xr-x 1 mcfred unknown 203264 Dec 4 01:09 libpng13.dll drwxr-xr-x 3 mcfred unknown 0 May 11 23:06 share -rwxr-xr-x 1 mcfred unknown 74752 Jan 2 13:31 zlib1.dll freeciv-2.0.1/data: total 40 drwxr-xr-x 2 mcfred unknown 0 May 11 22:09 civ1 -rw-r--r-- 1 mcfred unknown 249 May 11 22:10 civ1.serv drwxr-xr-x 2 mcfred unknown 0 May 11 22:09 civ2 -rw-r--r-- 1 mcfred unknown 218 May 11 22:10 civ2.serv drwxr-xr-x 2 mcfred unknown 0 May 11 22:09 default drwxr-xr-x 2 mcfred unknown 0 May 11 22:07 flags -rw-r--r-- 1 mcfred unknown 64491 May 11 22:10 helpdata.txt drwxr-xr-x 2 mcfred unknown 0 May 11 22:10 history -rw-r--r-- 1 mcfred unknown 116 May 11 22:10 history.serv drwxr-xr-x 2 mcfred unknown 0 May 11 22:09 isophex -rw-r--r-- 1 mcfred unknown 3126 May 11 22:10 isophex.tilespec drwxr-xr-x 2 mcfred unknown 0 May 11 22:09 isotrident -rw-r--r-- 1 mcfred unknown 2851 May 11 22:10 isotrident.tilespec drwxr-xr-x 2 mcfred unknown 0 May 11 22:07 misc drwxr-xr-x 2 mcfred unknown 0 May 11 22:09 nation drwxr-xr-x 2 mcfred unknown 0 May 11 22:09 scenario drwxr-xr-x 2 mcfred unknown 0 May 11 22:09 trident -rw-r--r-- 1 mcfred unknown 2993 May 11 22:10 trident.tilespec -rw-r--r-- 1 mcfred unknown 3019 May 11 22:10 trident_shields.tilespec freeciv-2.0.1/data/civ1: total 66 freeciv-2.0.1/data/civ2: total 73 freeciv-2.0.1/data/default: total 87 freeciv-2.0.1/data/flags: total 100 freeciv-2.0.1/data/history: total 76 freeciv-2.0.1/data/isophex: total 57 freeciv-2.0.1/data/isotrident: total 53 freeciv-2.0.1/data/misc: total 63 freeciv-2.0.1/data/nation: total 92 freeciv-2.0.1/data/scenario: total 84 freeciv-2.0.1/data/trident: total 46 freeciv-2.0.1/share: total 0 freeciv-2.0.1/share/locale: total 2 drwxr-xr-x 3 mcfred unknown 0 May 11 23:08 en_GB -rw-r--r-- 1 mcfred unknown 2641 May 11 22:10 locale.alias Compiling the GTK client The above lets you compile the Win32 GDI client. If you're using windows NT or above, you probably want to compile the GTK client as well. It's recommended that you follow the above steps first. Then: * Download and install GTK development libraries for windows. You can get them from http://www.gimp.org/~tml/gimp/win32/downloads.html. * Run ./autogen.sh --enable-client=gtk2. If this fails, you're in trouble. * Run make. Again, if it fails I don't know what to tell you. * Again run make install and/or copy over DLLs as needed. (These directions are incomplete. Please help out by filling them out.) TODO * Complete the Cygwin tutorial * Rewrite "getting it to work" * write "package freeciv" * Add items to the mini-FAQ